/**
 * 商品模块服务文件
 */

const db = require('../db/goods');

/**
 * 添加
 * @param {*} ctx 
 */
const add = async ctx => {
    try {
        const { body } = ctx.request;
        body.quantity = body.sku;
        await db.add(body);
        ctx.body = {
            code: 1,
            msg: '商品添加成功'
        }
    } catch (error) {
        ctx.app.emit('error', error);
        ctx.body = {
            code: 0,
            msg: '商品添加失败'
        }
    }
}

/**
 * 修改
 * @param {*} ctx 
 */
const update = async ctx => {
    try {
        const { body } = ctx.request;
        await db.update(body);
        ctx.body = {
            code: 1,
            msg: '商品修改成功'
        }
    } catch (error) {
        ctx.app.emit('error', error);
        ctx.body = {
            code: 0,
            msg: '商品修改失败'
        }
    }
}

/**
 * 更改状态
 * @param {*} ctx 
 */
const changeStatus = async ctx => {
    const { id, status } = ctx.request.body;
    const tip = status == 1 ? '上架' : '下架';
    try {
        await db.changeStatus(id, status);
        ctx.body = {
            code: 1,
            msg: `商品${tip}成功`
        }
    } catch (error) {
        ctx.app.emit('error', error);
        ctx.body = {
            code: 0,
            msg: `商品${tip}失败`
        }
    }
}

/**
 * 获取
 * @param {*} ctx 
 */
const search = async ctx => {
    try {
        const { rows: data, count } = await db.search(ctx.request.query);
        ctx.body = {
            code: 1,
            data,
            count
        }
    } catch (error) {
        ctx.app.emit('error', error);
        ctx.body = {
            code: 0,
            msg: '商品获取失败'
        }
    }
}

module.exports = {
    add,
    update,
    search,
    changeStatus,
}